Sparse Bayesian learning (SBL) can be implemented with low complexity based on the approximate message passing (AMP) algorithm. However, it is vulnerable to 'difficult' measurement matrices as AMP can easily diverge. Damped AMP has been used to alleviate the problem at the cost of slowing the convergence speed. In this work, we propose an SBL algorithm based on the AMP with unitary transformation (UTAMP). It is shown that, compared to the state-of-the-art AMP based SBL algorithm, the proposed UTAMP-SBL is much more robust and much faster, leading to remarkably better performance. It is shown that in many cases, UTAMP-SBL can approach the support-oracle bound closely.