I've heard its possible by changing the contents of sources.list file,
But you've been lied to. Even if Garuda was Ubuntu-based, or at least a debianoid, this would be a bad idea. But Garuda is based on the arch tooling, so completely incompatible.
or, is there another ways to swap distribution?
Sure, but by far the easiest way is to boot from a USB stick. You can also try to use a rescue boot mode that only uses your ubuntu's initial ram disk, to mount a downloaded installation medium from your internal and install over your ubuntu without repartitioning/formatting your storage after deleting everything but said download, but there's no guarantee the setup that Ubuntu could boot from works for Garuda, and I'd call that "very advanced installation method that expects a lot of Arch-specific knowledge", because then you can't use Garuda's installer (which, by the way, is probably most of the reasons for people to use Garuda instead of Arch to begin with, so why would you want that), and honestly, I'd give it a 90% chance that you end up with a non-functioning system.
Another option would be reducing the size of your ubuntu partition(s), making a new partition in the resulting free space, formatting it ext4, putting the garuda installation medium there bitwise, telling grub about chainloading the bootloader from that partition, and installing by booting into the Garuda installer. In said installer, remove / format the Ubuntu partitions, install Garuda. As soon as Garuda boots, remove the installer partition, and add the resulting free storage to the Garuda system, if desired.
Less risky in terms of complications, but a degree in bootloaderology is recommended.