This is a shot from Google BigTable paper

What can be the kind of scenarios in which instead of having something like Oracle’s redo logs, I will need to store multiple versions of the same data within the database?
Coming specifically to this example, why do I need to store multiple versions of a html page in my database? It cannot act as a backup because anyways all the versions are not there, only some of them are (say last 5).
Cases:
You want to know how daa has changed in the past. Examples: Tracking order status as it goes through the process. Track customer addresses even when they moved.
This can be a business requirement, or it can be – actually – a legal requirement. Quite often both.