Hi,
You can do it. You have to explicitly call the update function module of the change object that you are using for the transaction type and pass the old and new values.
This would write the value in CDPOS and CDHDR tables.
Then in my opinion, the current implementation of reading the transaction history should suffice to read the values.
You can check the function module you have to use by looking for your change document in transaction SCDO, or by just debugging the genil.
Hope this helps.
Regards,
Parul