You can develop your own SATA IP. It is not as complicated as the core price leads to believe. Unfortunately, I cannot share the source at this point but here is what you will need:
1- A good understanding of transceivers, especially reset sequences - read all the erratas.
2- SATA specs ($25)
3- ATA/ATAPI specs - most of it is free
4- Some kind of processor that will handle the commands (NIOS for example)
One of the challenges we ran into was the lack of compliance by the devices out there. Most of them follow the specs, but in some instances they behave in ways that are not documented. A SATA analyzer comes in very handy here. Before we had access to a SATA analyzer, we just made the hardware impersonate a host and started sending commands to a hard drive and figured out the responses.
Also, since you will be developing your own IP, you can tailor it to your needs and save on logic. If you develop your own card, make sure you have both host and device connectors - the connector is the same but the TX and RX pairs are reversed. Having both host and device will come in really handy during development.
Expect the core to take about 160 hours of coding. If you are mimicking a file system or implementing a SCSI device, you will need to spend some more time - this is work you will have to do anyway. None of these tasks are complicated, but they will require some research and implementation time.
When we did the analysis, the cost of developing vs buying was a wash so we opted to develop our own in order to gain the experience. The 25K price is in the lower end - some quotes we got were way above this.
Good luck!