Esta excepción se lanza si sqlite3_db_readonly() devuelve distinto de cero. Puede devolver un valor distinto de cero si
-
el archivo de la base de datos es de solo lectura, o
-
el archivo de la base de datos no existe.
(Referencia)
Tiene una ruta codificada "/storage/sdcard1/sk2.db" - es probable que no exista una base de datos allí. Usar variables de Environment para acceder a su almacenamiento externo en lugar de rutas codificadas.