If a Statement works in the SQLite Shell but not in the program, then the program is at fault. Parsing a result set for a specific column name without naming the column in the query is a common error. It works most of the time, until the generated name is different from the one expected. You did not include a terminating semicolon in your second example, so SQLite may have a problem parsng the query. This should show up if you were to check for errors. Or possibly 'something' is never TRUE, leading to an empty result set.