¿Cómo actualizar una base de datos SQLite y NO perder todos los datos existentes?

Estoy agregando una tabla a la base de datos SQLite de mi aplicación. Toda mi sintaxis está bien, no es el problema. Pero tengo algunos problemas para que la nueva tabla se cree correctamente. Agregué la nueva tabla ...

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

Mi método de creación. Tengo 3 mesas. Cuando actualicé el número de versión, recibí un error que decía "ya se crearon solicitudes de tabla (que se refieren a CREATE_REQUESTS)". Un vistazo a mi método onUpgrade ...

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

e hizo entender que la líneadb.execSQL("DROP TABLE IF EXISTS contacts"), que se refiere a mi tabla DATABASE_CREATE en el método onCreate, se usa para descartar la tabla anterior, luego la siguiente línea,onCreate(db); lo recrea. No agregué solicitudes a esa línea execSQL, que es lo que causó el error. Aquí está el problema: prefiero no perder los datos en las dos tablas que ya tengo. ¿Hay alguna manera de agregar una tabla como estoy tratando de hacer, y no perder todos los datos antiguos? Gracias

Respuestas a la pregunta(2)

Su respuesta a la pregunta