Вариант другого заданного ответа:
select count(type) from sqlite_master where type='table' and name='TABLE_NAME_TO_CHECK';
Вернет 0, если таблица не существует, 1, если существует.
Выполните следующий SQL:
select 1 from sqlite_master where type='table' and name='TABLE_NAME_TO_CHECK'
Если вы получили строку, значит, таблица существует. Если набор результатов пуст, значит, это не так.
Похоже, в SQL отсутствует правая скобка. Это должно быть:
const char* sql = "CREATE TABLE IF NOT EXISTS blocks(id text primary_key,length numeric);";