Why QueryableXEventData when configured to read live Extended Events stream is always one event behind? Same true for "Watch Live Data" window because it's based on QueryableXEventData (event_stream target) too.
Just in case below my create event session script.
CREATE EVENT SESSION [XE_Alter] ON SERVER
ADD EVENT sqlserver.object_altered(
ACTION(sqlserver.database_name,sqlserver.sql_text)
WHERE ([sqlserver].[database_name]='AdventureWorks2014')),
ADD EVENT sqlserver.object_created(
ACTION(sqlserver.database_name,sqlserver.sql_text)
WHERE ([sqlserver].[database_name]='AdventureWorks2014')),
ADD EVENT sqlserver.object_deleted(
ACTION(sqlserver.database_name,sqlserver.sql_text)
WHERE ([sqlserver].[database_name]='AdventureWorks2014'))