Como atualizar um banco de dados SQLite e NÃO perder todos os dados existentes?

Estou adicionando uma tabela ao banco de dados SQLite do meu aplicativo. Toda a minha sintaxe está bem, não o problema. Mas estou com problemas para conseguir que a nova tabela seja criada corretamente. Eu adicionei a nova tabela ....

@Override
        public void onCreate(SQLiteDatabase db) {
            db.execSQL(DATABASE_CREATE);
            db.execSQL(CREATE_REQUESTS);
            db.execSQL(CREATE_OVERRIDE);
        }

Meu método on create. Eu tenho 3 mesas. Quando atualizei o número da versão, recebi um erro dizendo que "as solicitações de tabela (referentes a CREATE_REQUESTS) já foram criadas". Uma olhada no meu método onUpgrade ...

@Override 
        public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
            db.execSQL("DROP TABLE IF EXISTS contacts");
            onCreate(db);
        }

Me levou a entender que a linhadb.execSQL("DROP TABLE IF EXISTS contacts"), que se refere à minha tabela DATABASE_CREATE no método onCreate, é usada para descartar a tabela antiga e, em seguida, a próxima linha,onCreate(db); recria. Não adicionei solicitações nessa linha execSQL, e foi isso que causou o erro. Aqui está o problema: prefiro não perder os dados nas duas tabelas que já tenho. Existe uma maneira de adicionar uma tabela como eu estou tentando fazer e não perder todos os dados antigos? Obrigado.

questionAnswers(2)

yourAnswerToTheQuestion