Таблицы могут быть удалены, независимо от того, есть ли в них данные при выполнении команды. Не знаю какой-либо базы данных, которая работает иначе. Так что это означает:
1) Получение списка таблиц -
SELECT name
FROM sqlite_master
WHERE type = 'table'
2) Переберите этот список, используя COUNT (*), чтобы определить, существуют ли какие-либо строки в таблице:
SELECT COUNT(*)
FROM ~table
3) Если возвращенное число меньше 1, выполните инструкцию DROP:
DROP TABLE ~table
SQLite не имеет поддержки функций или хранимых процедур - вам придется делать это из вашего приложения.