Brian, here's my 'now and next' query that I've just written on my sqllite db. It is working for me. Give it a try and see if this is what you want or if you can make it more 'elegant'.. This uses a subquery which is a union..
Code:
SELECT
b.oid,b.channel_oid,b.description,b.start_time,b.end_time
FROM epg_event b,
(SELECT
MIN(a.start_time) as start_time,
a.channel_oid
FROM epg_event a
WHERE
a.start_time > datetime('now','localtime')
GROUP BY a.channel_oid
UNION
SELECT
MIN(a.start_time) as start_time,
a.channel_oid
FROM epg_event a
WHERE
a.end_time >= datetime('now','localtime')
GROUP BY a.channel_oid
) c
WHERE
c.start_time = b.start_time and c.channel_oid = b.channel_oid
ORDER by b.channel_oid, b.start_time