Not really trying to defend Sri Lanken here. But...
It is fairly normal that when an airline advance schedule changes make your flight no longer acceptable they will rebook on any of their own flights. . They will refund you if no good option exists. But they will not re-book you on another carrier for the main legs. So I see no issue with UL not puting you on the CX direct flight.
This might have been more on Expedia, They could have insisted on a refund (and UL would do so). Then re-book you as you wish, but price difference on you. The CX direct would likely have been a lot more expensive.
Changes happen.