Como lidar com várias alterações de versão do banco de dados quando a atualização do Aplicativo Android

obrigado por ler a minha pergunta aqui.

Na verdade eu tenho alguma confusão sobre como lidar comSQLite tables quando eu preciso adicionar algumas linhas na tabela para várias versões sq-lite.

Eu google coisas e encontrei algo assim que temos que fazer alter table emonUpgrade método. Isso seria uma atualização sequencial de trabalho.

Suppose i have 3 devices they have below versions of database
1) 1st device = database version 1
2) 2nd device = database version 2
3) 3rd device = application not installed.

database version 1 = 2 columns
database version 2 = 2+2 columns
database version 3 = 4+2 columns.

Então, aqui se eu preciso dar atualização aos meus usuários de aplicativos android, então o que eu tenho que fazer? Eu tenho seguindo cenários.

1) Updated application would be install in 3rd device where still application is not installed.
2) Application should be update from version 1 to version 3 (Device 1st).
3) Application should be update from version 2 to version 3 (Device 2nd).

Aqui eu posso ter idéia sobre como lidar com o cenário número 3, mas eu não sei como posso lidar com os cenários 1 e 2.

Como posso escrever código para que funcione em todos os cenários?

O método onUpgrade seria chamado apenas de alterações de versão do banco de dados e onCreate call quando o banco de dados é criado.

Obrigado Qualquer ajuda e sugestão seria apreciada.