Как приспособить программу к многочисленным изменениям?
Если я верно понял задачу, то у вас база в одном формате, а данные приходят в разных.
Если это так, тогда вам нужно просто сделать 3 класса:
1 - преобразовывает данные в формате 1 во внутреннюю структуру (пригодную для сохранения в базу)
2 - преобразовывает данные в формате Х во внутреннюю структуру
3 - сохраняет данные из внутренней структуры в базу
Это стандартная практика для подобных задач.
Если вам будет нужно сохранять данные не в базу, а куда то еще, например в облако - вы просто добавите еще один класс, который умеет сохранять данные в нужном формате/на облако.
Работал, как то на одном жирном клиенте. Была подобная ситуация. Даже сложнее. Паттерн стратегия определял тип инстанцируемого приложения. 
Фич было очень много и некоторые деградировали периодически. Выбрали ворклоу  - GitFlow. С нашими целями справлялся.

Рекомендую. Но не навязываю.

Вы уже определились хранением версий в гите. Осталось выбрать workflow. Предлагаю прочитать сравнение от Atlassian : link
Выберете, что более подходит для ваших целей.

Спасибо.