Это проблема с разрешениями на уровне операционной системы, поэтому вам нужно либо переместить базу данных в какое-то место с более свободными разрешениями (не уверен, позволит ли API вам поместить ее на SD-карту, хотя базовые библиотеки должны).
Или же вы могли бы осуществлять мониторинг базы данных из чего-то, у кого есть разрешение на чтение, то есть что-то, работающее от имени пользователя root или, более вероятно, как идентификатор пользователя приложения _ ##, созданный для приложения после установки. Например, - и это не то, что вы должны делать, кроме как на своем устройстве для тестирования - вы можете сделать копию оболочки панели инструментов где-нибудь доступной для записи и выполнения (например, в этом каталоге / sqlite_stmt_journals) и настроить для нее идентификатор пользователя вашего приложения (ваш Само приложение должно будет выполнять копирование и chmod'ing программно). Затем вы можете запустить эту оболочку из оболочки adb и стать идентификатором пользователя приложения.
Или любой процесс, запускаемый программно приложением, будет иметь свой идентификатор пользователя, так что вы также можете прочитать о запуске netcat ("nc", я думаю, даже в официальных сборках Android) в его mini-insecure-telnet-daemon включите режим и запустите его из своего приложения, чтобы, если вы используете оболочку adb или порт adb forward для подключения к порту, где он прослушивается, вы получите оболочку, работающую в качестве идентификатора пользователя приложения.
Или вы можете встроить функцию исследования базы данных в свое приложение, либо прослушивая tcp, либо используя средство отслеживания файлов в качестве триггера, и сохраняйте файл на SD-карте, которую вы можете проверить.
Или вы можете получить root права на свой телефон.