Carbonite provides for limited file versioning. Carbonite is a cloud-based backup service with varying levels of support, but the basic version supports this. It is not a local backup program, strictly speaking.
Additionally, I've discovered that Google Drive also supports a form of file versioning. This feature creates a backed up version for each file as the original is saved. It does not meet your requirement of backing up when a file changes.
But wait, there's more. Allway Sync has a provision to synchronize any folder or file to another location. These locations can be cloud based, external drives, internal drives, even FTP. One of the custom parameters is to synchronize the file whenever it is changed. One can set the time period desired for the synchronizing. This is not versioning, however, as the "backed up" file exists only as a duplicate to the most recent one. I suppose one could combine Allway Sync with Google Drive for multi-layer protection.