В общем, добрался до документации на сайте ОВЕН. Оказывается SysExecute5 каждую новую строку из терминала пишет по заново по переданному ей указателю, перетирая предыдущие строки и последняя строка обязательно пустая. То есть необходимо вручную во время выполнения ФБ подкидывать ему новый указатель.

Вот такой код у меня заработал

Код:
FUNCTION_BLOCK SQLQuery IMPLEMENTS itfSQLQuery
VAR_INPUT
	xExecute:					BOOL;
END_VAR
VAR_OUTPUT
	xDone:						BOOL;
	xBusy:						BOOL;
	xError:						BOOL;
	usiCurQuery : USINT := 0; //текущий запрос 0 - запрос обработан; 1 - количество строк; 2- данные
END_VAR
VAR
	sPathToDb:					STRING	:=  '/home/ftp/kormplus_plc.db'; //путь к базе данных
	sCommand:		STRING(2047); //переменная для целой команды
	sSQLQuery:		STRING(2000); //переменная для запроса
	sTable : STRING; //Имя таблицы
	sColumn : STRING; //Имя столбца
	sWhereStatement : STRING(2000); //условия запроса
	iItemsCount : INT; //количество доступных строк в таблице
	fbSe5 :		 	CmpSysExec.SysExecute5;
	fbRiseEdge :		R_TRIG;
	// Результат выполнения запроса
	asResult :	ARRAY[1..255] OF STRING(255);
	
	x : UINT;
	i : USINT := 0;
	// количество строк в ответе
	usiCountOfStrings:			USINT;
	// TRUE - при выдаче ответа произошло переполнение массива, часть информации потеряна
	xOverFlow:					BOOL;
END_VAR
VAR CONSTANT
	// шаблон запроса, можно отредактировать под себя
	// см. https://linux.die.net/man/1/sqlite3
	c_sCommand:		STRING(255) := 'sqlite3 #PATH_TO_FILE# "#SQL#"';
	c_sCountSelect : STRING(255) := 'SELECT COUNT(#COLUMN#) FROM #TABLE# #WHERE#;';
	c_sSelect : STRING(255) := 'SELECT #COLUMN# FROM #TABLE# #WHERE#;';
END_VAR

fbRiseEdge(CLK := xExecute);

IF fbRiseEdge.Q THEN
	i := 1;
	xOverFlow := FALSE;
	usiCountOfStrings := 0;
END_IF

fbSe5
(
	xExecute 	:= xExecute,
	pCommand := ADR(sCommand),
	szCommand := TO_DWORD(STU.StrLenA(ADR(sCommand))),
	pOutput := ADR(asResult[i]),
	szOutput := SIZEOF(asResult[i]),
	uiOutputSize => x,
	xDone       => xDone,
	xBusy       => xBusy,
	xError      => xError
);

IF fbSe5.xBusy AND asResult[i] <> '' AND i < 255 THEN
	i := i + 1;
	IF i = 255 OR x > 255 THEN
		xOverFlow := TRUE;
	END_IF 
END_IF

IF fbSe5.xDone THEN
	usiCountOfStrings := i -1;
END_IF