The solution so far I arrived is to create Transitional Masters, at least here in this case I am taking city_trn_mst and dist_trn_mst. The structure will be same in the all case.

city_trn_mst             dist_trn_mst
City Code                   District Code
District Code               State Code
Effective From             Effective From
Effective To                 Effective To

We need to create some view accordingly to be used as a master view for the reporting purpose.