1. A method for capturing and storing a data history of a file to enable reconstruction of versions of the file, comprising: storing a copy of a first version of a file at a remote location; comparing with one or more computer processors, a second version of the file to the first version of the file, or the copy of the first version of the file, to generate one or more delta strings associated with the second version of the file; storing the one or more delta strings associated with the second version of the file at the remote location; generating a byte range index at the remote location that refers to bytes in the copy of the first version of the file and to bytes in the one or more delta strings associated with the second version of the file; wherein the byte range index references entire contents of the second version of the file; storing the byte range index at the remote location; and using the byte range index to enable reconstruction of the second version of the file without having to apply to the copy of the first version of the file the one or more delta strings associated with the second version of the file.