 <p>Your database should have a method for updating the database</p> <pre><code>@Override public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { // do something to upgrade } </code></pre> <p>But that isn't called by default, but when your app first tries to open the database. At that point, you should be to architect a dialog that instructs your user and either do the upgrade or not.</p> <p>It's also possible to alter the user's database within that onUpgrade method. For example, a string like this:</p> <pre><code>private static final String ALTER_TABLE3 = "ALTER TABLE exercises ADD COLUMN exscore REAL DEFAULT 0.0"; </code></pre> <p>could be used in onUpgrade like so:</p> <pre><code>if (oldVersion == 5) { db.execSQL(ALTER_TABLE3); // now copy all of the values from integer to real setUpMoveRoutine = true; } </code></pre> <p>I did an upgrade from v4 to v5 that needed new elements within a table. And then called a method to move data as needed. </p> <p>You should be able to manage just about any changes in your database</p>