You don't need a copy of the original data, you can simply store your change as a XOR so undoing it mean XORing it again.
However, if your change involves zeroing something out, you're back to storing the original data again.
However, if your change involves zeroing something out, you're back to storing the original data again.