1. A method for pre-provisioning validated database snapshots, the method comprising: receiving a plurality of point-in-time copies of a source database, the plurality of point-in-time copies received based on a first predefined schedule; storing a plurality of database blocks associated with the plurality of point-in-time copies on a storage system; receiving transaction logs corresponding to transactions executed in the source database; creating a plurality of recovery milestones based on a second predefined schedule, wherein the recovery milestones are created at a frequency higher than a frequency at which point-in-time copies of the source database are received, each recovery milestone comprising database blocks corresponding to a state of the source database at a point in time, wherein one or more database blocks are shared across two or more recovery milestones, the creating comprising: creating a first recovery milestone by applying transaction logs to the plurality of database blocks associated with a point-in-time copy of the source database, and creating one or more subsequent recovery milestones by applying transaction logs to database blocks of the first recovery milestone or by applying transaction logs to database blocks of another recovery milestone created based on the first recovery milestone; receiving a request to provision a virtual database representing a state of the source database at a first point in time; identifying a recovery milestone based on the first point in time; and provisioning the requested virtual database based on the identified recovery milestone, the virtual database configured to provide access to database blocks associated with the recovery milestone to a target system.