The API call will only return a certain number of entries by default, but you can do multiple queries with limit/offset parameters to get all the revisions.
There isn't a specific limit of revisions that I'm aware of, but when you do a version upgrade, the revision history is not carried over.
More precisely, only the published state of the database at the point of upgrade is carried over and any unpublished sessions will be discarded.
It should also be noted: once you use the revert action, there is no going back short of a full restore from backup, which you hopefully make before using this function.