Well since you have not mentioned the RTC controller that you are using, so its kind of difficult to answer your question, But generally all such operations where register value can change during a read/write operation, secondary registers are used. So whenever you initiate a read, all the values from internal registers are copied to these secondary registers. And while you are reading even if internal registers get updated, value on the secondary register remains the same. This gives you an accurate reading.
I've used DS1307 long time ago, atleast that had this feature.