In the database, the version number is stored with PRAGMA user_version, so it must fit into a signed 32-bit integer. (The Android libraries use the same data type.)
Valid version numbers must be greater than zero, so you could have 2147483647 different versions, but there are no other restrictions.
It is possible for version numbers to jump by more than 1 at a time.
This could be because you never used the other numbers, or because the app was not updated for a long time. (In the latter case, your onUpgrade
method must be able to upgrade through multiple steps.)